home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 2000 July: Mac OS SDK / Dev.CD Jul 00 SDK2.toast / Development Kits / Cross Platform / QuickTime 4.1.2 Windows SDK / CIncludes / SocketServices.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-04-12  |  22.6 KB  |  826 lines  |  [TEXT/R*ch]

  1. /*
  2.      File:        SocketServices.h
  3.  
  4.      Contains:    This file contains constants and data structures that
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Release:    QuickTime 4.1
  8.  
  9.      Copyright:    (c) 1994-1999 by Apple Computer, Inc. All rights reserved.
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. */
  17. #ifndef __SOCKETSERVICES__
  18. #define __SOCKETSERVICES__
  19.  
  20. #ifndef __MACTYPES__
  21.     #include <MacTypes.h>
  22. #endif
  23.  
  24. #ifndef __MIXEDMODE__
  25.     #include <MixedMode.h>
  26. #endif
  27.  
  28.  
  29.  
  30.  
  31. #if PRAGMA_ONCE
  32. #pragma once
  33. #endif
  34.  
  35. #ifdef __cplusplus
  36. extern "C" {
  37. #endif
  38.  
  39. #if PRAGMA_IMPORT
  40. #pragma import on
  41. #endif
  42.  
  43. #if PRAGMA_STRUCT_ALIGN
  44.     #pragma options align=mac68k
  45. #elif PRAGMA_STRUCT_PACKPUSH
  46.     #pragma pack(push, 2)
  47. #elif PRAGMA_STRUCT_PACK
  48.     #pragma pack(2)
  49. #endif
  50.  
  51. /*
  52.   ///////////////////////////////////////////////////////////////////////////////////////
  53.       TypeDefs for the Socket Services function codes
  54. */
  55.  
  56. typedef Byte                             SS_BYTE;
  57. typedef Byte                             SS_FLAGS8;
  58. typedef Byte                             SS_IRQ;
  59. typedef Byte                             SS_PWRLEVEL;
  60. typedef UInt16                             SS_ADAPTER;
  61. typedef UInt16                             SS_BCD;
  62. typedef UInt16                             SS_COUNT;
  63. typedef UInt16                             SS_EDC;
  64. typedef UInt16                             SS_FLAGS16;
  65. typedef UInt16                             SS_PAGE;
  66. typedef UInt16                             SS_PWRINDEX;
  67. typedef UInt16                             SS_SIGNATURE;
  68. typedef UInt16                             SS_SKTBITS;
  69. typedef UInt16                             SS_SOCKET;
  70. typedef UInt16                             SS_SPEED;
  71. typedef UInt16                             SS_WINDOW;
  72. typedef UInt16                             SS_WORD;
  73. typedef UInt32                             SS_BASE;
  74. typedef UInt32                             SS_FLAGS32;
  75. typedef UInt32                             SS_OFFSET;
  76. typedef UInt32                             SS_SIZE;
  77. typedef Ptr                             SS_PTR;
  78. typedef OSErr                             SS_RETCODE;
  79.  
  80. struct SS_SCHARTBL {
  81.     UInt16                             sktCaps;                    /*    SS_FLAGS16*/
  82.     UInt32                             activeHigh;                    /*    SS_FLAGS32*/
  83.     UInt32                             activeLow;                    /*    SS_FLAGS32*/
  84. };
  85. typedef struct SS_SCHARTBL                SS_SCHARTBL;
  86.  
  87. struct SS_SISTRUCT {
  88.     UInt16                             bufferLength;                /*    SS_WORD*/
  89.     UInt16                             dataLength;                    /*    SS_WORD*/
  90.     SS_SCHARTBL                     charTable;                    /*    SS_FLAGS16*/
  91. };
  92. typedef struct SS_SISTRUCT                SS_SISTRUCT;
  93. enum {
  94.     STR_SIZE                    = 24
  95. };
  96.  
  97. /* minimum string length*/
  98.  
  99. struct SS_VISTRUCT {
  100.     UInt16                             bufferLength;                /*    SS_WORD*/
  101.     UInt16                             dataLength;                    /*    SS_WORD*/
  102.     char                             szImplementor[1];            /*    SS_WORD*/
  103.     Byte                             padding[1];                    /*    */
  104. };
  105. typedef struct SS_VISTRUCT                SS_VISTRUCT;
  106.  
  107. struct SS_ACHARTBL {
  108.     UInt16                             adpCaps;                    /*    SS_FLAGS16*/
  109.     UInt32                             activeHigh;                    /*    SS_FLAGS32*/
  110.     UInt32                             activeLow;                    /*    SS_FLAGS32*/
  111. };
  112. typedef struct SS_ACHARTBL                SS_ACHARTBL;
  113.  
  114. struct SS_PWRENTRY {
  115.     Byte                             powerLevel;                    /*    SS_PWRLEVEL*/
  116.     Byte                             validSignals;                /*    SS_FLAGS8*/
  117. };
  118. typedef struct SS_PWRENTRY                SS_PWRENTRY;
  119.  
  120. struct SS_AISTRUCT {
  121.     UInt16                             bufferLength;                /*    SS_WORD*/
  122.     UInt16                             dataLength;                    /*    SS_WORD*/
  123.     SS_ACHARTBL                     charTable;
  124.     UInt16                             numPwrEntries;                /*    SS_WORD*/
  125.     SS_PWRENTRY *                    pwrEntryPtr;
  126. };
  127. typedef struct SS_AISTRUCT                SS_AISTRUCT;
  128.  
  129. struct SS_MEMWINTBL {
  130.     UInt16                             memWndCaps;                    /*    SS_FLAGS16*/
  131.     UInt32                             firstByte;                    /*    SS_BASE*/
  132.     UInt32                             lastByte;                    /*    SS_BASE*/
  133.     UInt32                             minSize;                    /*    SS_SIZE*/
  134.     UInt32                             maxSize;                    /*    SS_SIZE*/
  135.     UInt32                             reqGran;                    /*    SS_SIZE*/
  136.     UInt32                             reqBase;                    /*    SS_SIZE*/
  137.     UInt32                             reqOffset;                    /*    SS_SIZE*/
  138.     UInt16                             slowest;                    /*    SS_SPEED*/
  139.     UInt16                             fastest;                    /*    SS_SPEED*/
  140. };
  141. typedef struct SS_MEMWINTBL                SS_MEMWINTBL;
  142.  
  143. struct SS_IOWINTBL {
  144.     UInt16                             ioWndCaps;                    /*    SS_FLAGS16*/
  145.     UInt32                             firstByte;                    /*    SS_BASE*/
  146.     UInt32                             lastByte;                    /*    SS_BASE*/
  147.     UInt32                             minSize;                    /*    SS_SIZE*/
  148.     UInt32                             maxSize;                    /*    SS_SIZE*/
  149.     UInt32                             reqGran;                    /*    SS_SIZE*/
  150.     UInt16                             addrLines;                    /*    SS_COUNT*/
  151.     Byte                             eisaSlot;                    /*    SS_FLAGS8*/
  152.     Byte                             padding[1];                    /*    */
  153. };
  154. typedef struct SS_IOWINTBL                SS_IOWINTBL;
  155.  
  156. struct SS_WISTRUCT {
  157.     UInt16                             bufferLength;                /*    SS_WORD*/
  158.     UInt16                             dataLength;                    /*    SS_WORD*/
  159.     UInt16                             numTblEntries;                /*    SS_WORD*/
  160.     SS_MEMWINTBL                     memWinTbl;
  161.     SS_IOWINTBL                     ioWinTbl;
  162. };
  163. typedef struct SS_WISTRUCT                SS_WISTRUCT;
  164.  
  165. /*------------------------------------------------------------------------
  166.     function selectors passed to Socket Service entry point
  167. ------------------------------------------------------------------------*/
  168. enum {
  169.     fnSSGetAdapterCount            = 0x80,
  170.     fnSSUnsupported81            = 0x81,
  171.     fnSSUnsupported82            = 0x82,
  172.     fnSSGetSSInfo                = 0x83,
  173.     fnSSInquireAdapter            = 0x84,
  174.     fnSSGetAdapter                = 0x85,
  175.     fnSSSetAdapter                = 0x86,
  176.     fnSSInquireWindow            = 0x87,
  177.     fnSSGetWindow                = 0x88,
  178.     fnSSSetWindow                = 0x89,
  179.     fnSSGetPage                    = 0x8A,
  180.     fnSSSetPage                    = 0x8B,
  181.     fnSSInquireSocket            = 0x8C,
  182.     fnSSGetSocket                = 0x8D,
  183.     fnSSSetSocket                = 0x8E,
  184.     fnSSGetStatus                = 0x8F,
  185.     fnSSResetSocket                = 0x90,
  186.     fnSSUnsupported91            = 0x91,
  187.     fnSSUnsupported92            = 0x92,
  188.     fnSSUnsupported93            = 0x93,
  189.     fnSSUnsupported94            = 0x94,
  190.     fnSSInquireEDC                = 0x95,
  191.     fnSSGetEDC                    = 0x96,
  192.     fnSSSetEDC                    = 0x97,
  193.     fnSSStartEDC                = 0x98,
  194.     fnSSPauseEDC                = 0x99,
  195.     fnSSResumeEDC                = 0x9A,
  196.     fnSSStopEDC                    = 0x9B,
  197.     fnSSReadEDC                    = 0x9C,
  198.     fnSSGetVendorInfo            = 0x9D,
  199.     fnSSAcknowledgeInterrupt    = 0x9E,
  200.     fnSSGetSetPriorHandler        = 0x9F,
  201.     fnSSGetSetSSAddr            = 0xA0,
  202.     fnSSGetAccessOffsets        = 0xA1,
  203.     fnSSUnsupportedA2            = 0xA2,
  204.     fnSSUnsupportedA3            = 0xA3,
  205.     fnSSUnsupportedA4            = 0xA4,
  206.     fnSSUnsupportedA5            = 0xA5,
  207.     fnSSUnsupportedA6            = 0xA6,
  208.     fnSSUnsupportedA7            = 0xA7,
  209.     fnSSUnsupportedA8            = 0xA8,
  210.     fnSSUnsupportedA9            = 0xA9,
  211.     fnSSUnsupportedAA            = 0xAA,
  212.     fnSSUnsupportedAB            = 0xAB,
  213.     fnSSUnsupportedAC            = 0xAC,
  214.     fnSSUnsupportedAD            = 0xAD,
  215.     fnSSVendorSpecific            = 0xAE
  216. };
  217.  
  218. /*    SSVendorSpecificPB.function values*/
  219.  
  220. enum {
  221.     fnVSReserved                = 0x00,
  222.     fnVSGetSocketLocationIcon    = 0x01,
  223.     fnVSGetSocketLocationText    = 0x02,
  224.     fnVSDoSocketLocalization    = 0x03,
  225.     fnVSAppleSocketCapabilities    = 0x04,
  226.     fnVSSleepWakeNotification    = 0x05
  227. };
  228.  
  229.  
  230. /*------------------------------------------------------------------------
  231.     defines for the Socket Services function codes
  232. ------------------------------------------------------------------------*/
  233. enum {
  234.     AC_IND                        = 1,                            /* adapter characteristics*/
  235.     AC_PWR                        = 2,
  236.     AC_DBW                        = 4
  237. };
  238.  
  239. enum {
  240.     AS_POWERDOWN                = 1,
  241.     AS_MAINTAIN                    = 2
  242. };
  243.  
  244. enum {
  245.     EC_UNI                        = 1,
  246.     EC_BI                        = 2,
  247.     EC_REGISTER                    = 4,
  248.     EC_MEMORY                    = 8,
  249.     EC_PAUSABLE                    = 16,
  250.     EC_WRITE                    = 16
  251. };
  252.  
  253. enum {
  254.     ET_CHECK8                    = 1,
  255.     ET_SDLC16                    = 2
  256. };
  257.  
  258. enum {
  259.     IF_MEMORY                    = 1,
  260.     IF_IO                        = 2
  261. };
  262.  
  263. enum {
  264.     IRQ_HIGH                    = 64,
  265.     IRQ_ENABLE                    = 128
  266. };
  267.  
  268. enum {
  269.     IRQ_MEMORY                    = 4,
  270.     IRQ_IO                        = 4
  271. };
  272.  
  273. enum {
  274.     PS_ATTRIBUTE                = 0x01,
  275.     PS_ENABLED                    = 0x02,
  276.     PS_WP                        = 0x04
  277. };
  278.  
  279. enum {
  280.     PWR_VCC                        = 128,                            /* Power pins in PwrEntry elements*/
  281.     PWR_VPP1                    = 64,
  282.     PWR_VPP2                    = 32
  283. };
  284.  
  285. enum {
  286.     SBM_WP                        = 1,
  287.     SBM_LOCKED                    = 2,
  288.     SBM_EJECT                    = 4,
  289.     SBM_INSERT                    = 8,
  290.     SBM_BVD1                    = 16,
  291.     SBM_BVD2                    = 32,
  292.     SBM_RDYBSY                    = 64,
  293.     SBM_CD                        = 128
  294. };
  295.  
  296. enum {
  297.     SBM_LOCK                    = 16,
  298.     SBM_BATT                    = 32,
  299.     SBM_BUSY                    = 64,
  300.     SBM_XIP                        = 128
  301. };
  302.  
  303. /* Vendor Specific Apple Socket Capabilities */
  304. enum {
  305.     SBM_SLEEP_PWR                = 1
  306. };
  307.  
  308. enum {
  309.     WC_COMMON                    = 1,
  310.     WC_IO                        = 2,
  311.     WC_ATTRIBUTE                = 4,
  312.     WC_TYPE_MASK                = 7,
  313.     WC_WAIT                        = 128
  314. };
  315.  
  316. enum {
  317.     WC_BASE                        = 1,
  318.     WC_SIZE                        = 2,
  319.     WC_WENABLE                    = 4,
  320.     WC_8BIT                        = 8,
  321.     WC_16BIT                    = 16,
  322.     WC_BALIGN                    = 32,
  323.     WC_POW2                        = 64,
  324.     WC_CALIGN                    = 128,
  325.     WC_PAVAIL                    = 256,
  326.     WC_PSHARED                    = 512,
  327.     WC_PENABLE                    = 1024,
  328.     WC_WP                        = 2048
  329. };
  330.  
  331. enum {
  332.     WC_INPACK                    = 128,
  333.     WC_EISA                        = 256,
  334.     WC_CENABLE                    = 512
  335. };
  336.  
  337. enum {
  338.     WS_IO                        = 1,
  339.     WS_ENABLED                    = 2,
  340.     WS_16BIT                    = 4
  341. };
  342.  
  343. enum {
  344.     WS_PAGED                    = 8,
  345.     WS_EISA                        = 16,
  346.     WS_CENABLE                    = 32,
  347.     WS_SWAP_LITTLE_TO_BIG_ENDIAN = 64
  348. };
  349.  
  350. enum {
  351.     SS_SIG_VALUE                = 0x5353                        /* 'SS'*/
  352. };
  353.  
  354. enum {
  355.     SS_CMPL_1_00                = 0x0100,                        /* compliant with rev 1.0 of SS standard*/
  356.     SS_CMPL_1_01                = 0x0101,                        /* compliant with rev 1.01 of SS standard*/
  357.     SS_CMPL_2_00                = 0x0200,                        /* compliant with rev 2.0 of SS standard*/
  358.     SS_CMPL_2_10                = 0x0210                        /* compliant with rev 2.1 of SS standard*/
  359. };
  360.  
  361. /*------------------------------------------------------------------------
  362.     Universal ProcPtr for Socket Service entry point
  363. ------------------------------------------------------------------------*/
  364. typedef CALLBACK_API( short , PCCardSSEntryProcPtr )(UInt16 fnCode, Ptr callPB, Ptr dataPtr);
  365. typedef STACK_UPP_TYPE(PCCardSSEntryProcPtr)                     PCCardSSEntryUPP;
  366. #if OPAQUE_UPP_TYPES
  367.     EXTERN_API(PCCardSSEntryUPP)
  368.     NewPCCardSSEntryUPP               (PCCardSSEntryProcPtr    userRoutine);
  369.  
  370.     EXTERN_API(void)
  371.     DisposePCCardSSEntryUPP           (PCCardSSEntryUPP        userUPP);
  372.  
  373.     EXTERN_API(short)
  374.     InvokePCCardSSEntryUPP           (UInt16                    fnCode,
  375.                                     Ptr                        callPB,
  376.                                     Ptr                        dataPtr,
  377.                                     PCCardSSEntryUPP        userUPP);
  378.  
  379. #else
  380.     enum { uppPCCardSSEntryProcInfo = 0x00000FA0 };                 /* pascal 2_bytes Func(2_bytes, 4_bytes, 4_bytes) */
  381.     #define NewPCCardSSEntryUPP(userRoutine)                         (PCCardSSEntryUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppPCCardSSEntryProcInfo, GetCurrentArchitecture())
  382.     #define DisposePCCardSSEntryUPP(userUPP)                         DisposeRoutineDescriptor(userUPP)
  383.     #define InvokePCCardSSEntryUPP(fnCode, callPB, dataPtr, userUPP)  (short)CALL_THREE_PARAMETER_UPP((userUPP), uppPCCardSSEntryProcInfo, (fnCode), (callPB), (dataPtr))
  384. #endif
  385. /* support for pre-Carbon UPP routines: NewXXXProc and CallXXXProc */
  386. #define NewPCCardSSEntryProc(userRoutine)                         NewPCCardSSEntryUPP(userRoutine)
  387. #define CallPCCardSSEntryProc(userRoutine, fnCode, callPB, dataPtr) InvokePCCardSSEntryUPP(fnCode, callPB, dataPtr, userRoutine)
  388. /*------------------------------------------------------------------------
  389.     Card Services calls used by a Socket Service
  390. ------------------------------------------------------------------------*/
  391.  
  392. struct CSEventEntryPB {
  393.     UInt32                             ssHandlerID;
  394.     UInt16                             adapter;
  395.     UInt16                             socket;
  396.     UInt16                             message;
  397.     Byte                             intrpBits;
  398.     Byte                             padding;
  399. };
  400. typedef struct CSEventEntryPB            CSEventEntryPB;
  401. typedef CALLBACK_API( void , PCCardCSEntryProcPtr )(CSEventEntryPB *pb);
  402. typedef STACK_UPP_TYPE(PCCardCSEntryProcPtr)                     PCCardCSEntryUPP;
  403. #if OPAQUE_UPP_TYPES
  404.     EXTERN_API(PCCardCSEntryUPP)
  405.     NewPCCardCSEntryUPP               (PCCardCSEntryProcPtr    userRoutine);
  406.  
  407.     EXTERN_API(void)
  408.     DisposePCCardCSEntryUPP           (PCCardCSEntryUPP        userUPP);
  409.  
  410.     EXTERN_API(void)
  411.     InvokePCCardCSEntryUPP           (CSEventEntryPB *        pb,
  412.                                     PCCardCSEntryUPP        userUPP);
  413.  
  414. #else
  415.     enum { uppPCCardCSEntryProcInfo = 0x000000C0 };                 /* pascal no_return_value Func(4_bytes) */
  416.     #define NewPCCardCSEntryUPP(userRoutine)                         (PCCardCSEntryUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppPCCardCSEntryProcInfo, GetCurrentArchitecture())
  417.     #define DisposePCCardCSEntryUPP(userUPP)                         DisposeRoutineDescriptor(userUPP)
  418.     #define InvokePCCardCSEntryUPP(pb, userUPP)                     CALL_ONE_PARAMETER_UPP((userUPP), uppPCCardCSEntryProcInfo, (pb))
  419. #endif
  420. /* support for pre-Carbon UPP routines: NewXXXProc and CallXXXProc */
  421. #define NewPCCardCSEntryProc(userRoutine)                         NewPCCardCSEntryUPP(userRoutine)
  422. #define CallPCCardCSEntryProc(userRoutine, pb)                    InvokePCCardCSEntryUPP(pb, userRoutine)
  423. /*------------        AddSocketServices        ------------                            */
  424.  
  425.  
  426. struct AddSocketServicesPB {
  427.     PCCardSSEntryUPP                 ssEntry;                    /* -> given to CS for its use*/
  428.     PCCardCSEntryUPP                 csEntry;                    /* <- taken from CS so we know where to enter*/
  429.  
  430.     UInt32                             dataPtr;
  431.     UInt32                             attributes;
  432.     UInt16                             numAdapters;
  433.     UInt16                             numSockets;
  434. };
  435. typedef struct AddSocketServicesPB        AddSocketServicesPB;
  436. /*------------         ReplaceSocketServices    ------------                            */
  437.  
  438.  
  439. struct ReplaceSocketServicesPB {
  440.     PCCardSSEntryUPP                 ssEntry;
  441.     PCCardSSEntryUPP                 oldSSEntry;
  442.  
  443.     UInt32                             dataPtr;
  444.     UInt16                             socket;
  445.     UInt16                             numSockets;
  446.     UInt16                             attributes;
  447. };
  448. typedef struct ReplaceSocketServicesPB    ReplaceSocketServicesPB;
  449. EXTERN_API( OSErr )
  450. CSAddSocketServices                (AddSocketServicesPB *    pb)                                    TWOWORDINLINE(0x7050, 0xAAF0);
  451.  
  452. EXTERN_API( OSErr )
  453. CSReplaceSocketServices            (ReplaceSocketServicesPB * pb)                                TWOWORDINLINE(0x7051, 0xAAF0);
  454.  
  455.  
  456.  
  457. /*------------------------------------------------------------------------
  458.     parameter blocks for each Socket Service function
  459. ------------------------------------------------------------------------*/
  460.  
  461. struct SSAcknowledgeInterruptPB {
  462.     UInt16                             adapter;                    /*    SS_ADAPTER*/
  463.     UInt16                             sockets;                    /*    SS_SKTBITS*/
  464. };
  465. typedef struct SSAcknowledgeInterruptPB    SSAcknowledgeInterruptPB;
  466.  
  467. struct SSGetAccessOffsetsPB {
  468.     UInt16                             adapter;                    /*    SS_ADAPTER*/
  469.     Byte                             mode;                        /*    SS_BYTE*/
  470.     Byte                             reserved;                    /*    padding*/
  471.     UInt16                             count;                        /*    SS_COUNT*/
  472.     Ptr                             buffer;                        /*    SS_PTR*/
  473.     UInt16                             numAvail;                    /*    SS_COUNT*/
  474. };
  475. typedef struct SSGetAccessOffsetsPB        SSGetAccessOffsetsPB;
  476.  
  477. struct SSGetAdapterCountPB {
  478.     UInt16                             totalAdapters;                /*    SS_COUNT*/
  479.     UInt16                             sig;                        /*    SS_SIGNATURE*/
  480. };
  481. typedef struct SSGetAdapterCountPB        SSGetAdapterCountPB;
  482.  
  483. struct SSGetSetAdapterPB {
  484.     UInt16                             adapter;                    /*    SS_ADAPTER*/
  485.     Byte                             state;                        /*    SS_FLAGS8*/
  486.     Byte                             irqStatus;                    /*    SS_IRQ*/
  487. };
  488. typedef struct SSGetSetAdapterPB        SSGetSetAdapterPB;
  489.  
  490. struct SSGetSetEDCPB {
  491.     UInt16                             adapter;                    /*    SS_ADAPTER*/
  492.     UInt16                             edc;                        /*    SS_EDC*/
  493.     UInt16                             socket;                        /*    SS_SOCKET*/
  494.     Byte                             state;                        /*    SS_FLAGS8*/
  495.     Byte                             edcType;                    /*    SS_FLAGS8*/
  496. };
  497. typedef struct SSGetSetEDCPB            SSGetSetEDCPB;
  498.  
  499. struct SSGetSetPagePB {
  500.     UInt16                             adapter;                    /*    SS_ADAPTER*/
  501.     UInt16                             window;                        /*    SS_WINDOW*/
  502.     UInt16                             page;                        /*    SS_PAGE*/
  503.     Byte                             state;                        /*    SS_FLAGS8*/
  504.     Byte                             reserved;                    /*    padding*/
  505.     UInt32                             offset;                        /*    SS_OFFSET*/
  506. };
  507. typedef struct SSGetSetPagePB            SSGetSetPagePB;
  508.  
  509. struct SSGetSetPriorHandlerPB {
  510.     UInt16                             adapter;                    /*    SS_ADAPTER*/
  511.     Byte                             mode;                        /*    SS_FLAGS8*/
  512.     Byte                             reserved;                    /*    padding*/
  513.     Ptr                             handler;                    /*    SS_PTR*/
  514. };
  515. typedef struct SSGetSetPriorHandlerPB    SSGetSetPriorHandlerPB;
  516.  
  517. struct SSGetSetSocketPB {
  518.     UInt16                             adapter;                    /*    SS_ADAPTER*/
  519.     UInt16                             socket;                        /*    SS_SOCKET*/
  520.     UInt16                             vccIndex;                    /*    SS_PWRINDEX*/
  521.     UInt16                             vpp1Index;                    /*    SS_PWRINDEX*/
  522.     UInt16                             vpp2Index;                    /*    SS_PWRINDEX*/
  523.     Byte                             scIntMask;                    /*    SS_FLAGS8*/
  524.     Byte                             state;                        /*    SS_FLAGS8*/
  525.     Byte                             ctlInd;                        /*    SS_FLAGS8*/
  526.     Byte                             ireqRouting;                /*    SS_IRQ*/
  527.     Byte                             ifType;                        /*    SS_FLAGS8*/
  528.     Byte                             padding[1];                    /*    */
  529. };
  530. typedef struct SSGetSetSocketPB            SSGetSetSocketPB;
  531.  
  532. struct SSGetSetSSAddrPB {
  533.     UInt16                             adapter;                    /*    SS_ADAPTER*/
  534.     Byte                             mode;                        /*    SS_BYTE*/
  535.     Byte                             subfunc;                    /*    SS_BYTE*/
  536.     UInt16                             numAddData;                    /*    SS_COUNT*/
  537.     Ptr                             buffer;                        /*    SS_PTR*/
  538. };
  539. typedef struct SSGetSetSSAddrPB            SSGetSetSSAddrPB;
  540.  
  541. struct SSGetSetWindowPB {
  542.     UInt16                             adapter;                    /*    SS_ADAPTER*/
  543.     UInt16                             window;                        /*    SS_WINDOW*/
  544.     UInt16                             socket;                        /*    SS_SOCKET*/
  545.     UInt32                             size;                        /*    SS_SIZE*/
  546.     Byte                             state;                        /*    SS_FLAGS8*/
  547.     Byte                             reserved;                    /*    padding*/
  548.     UInt16                             speed;                        /*    SS_SPEED*/
  549.     UInt32                             base;                        /*    SS_BASE*/
  550. };
  551. typedef struct SSGetSetWindowPB            SSGetSetWindowPB;
  552.  
  553. struct SSGetSSInfoPB {
  554.     UInt16                             adapter;                    /*    SS_ADAPTER*/
  555.     UInt16                             compliance;                    /*    SS_BCD*/
  556.     UInt16                             numAdapters;                /*    SS_COUNT*/
  557.     UInt16                             firstAdapter;                /*    SS_ADAPTER*/
  558. };
  559. typedef struct SSGetSSInfoPB            SSGetSSInfoPB;
  560.  
  561. struct SSGetStatusPB {
  562.     UInt16                             adapter;                    /*    SS_ADAPTER*/
  563.     UInt16                             socket;                        /*    SS_SOCKET*/
  564.     Byte                             cardState;                    /*    SS_FLAGS8*/
  565.     Byte                             socketState;                /*    SS_FLAGS8*/
  566.     Byte                             ctlInd;                        /*    SS_FLAGS8*/
  567.     Byte                             ireqRouting;                /*    SS_IRQ*/
  568.     Byte                             ifType;                        /*    SS_FLAGS8*/
  569.     Byte                             padding[1];                    /*    */
  570. };
  571. typedef struct SSGetStatusPB            SSGetStatusPB;
  572.  
  573. struct SSGetVendorInfoPB {
  574.     UInt16                             adapter;                    /*    SS_ADAPTER*/
  575.     Byte                             vendorInfoType;                /*    SS_BYTE*/
  576.     Byte                             reserved;                    /*    padding*/
  577.     Ptr                             buffer;                        /*    SS_PTR*/
  578.     UInt16                             release;                    /*    SS_BCD*/
  579. };
  580. typedef struct SSGetVendorInfoPB        SSGetVendorInfoPB;
  581.  
  582. struct SSInquireAdapterPB {
  583.     UInt16                             adapter;                    /*    SS_ADAPTER*/
  584.     Ptr                             buffer;                        /*    SS_PTR*/
  585.     UInt16                             numSockets;                    /*    SS_COUNT*/
  586.     UInt16                             numWindows;                    /*    SS_COUNT*/
  587.     UInt16                             numEDCs;                    /*    SS_COUNT*/
  588. };
  589. typedef struct SSInquireAdapterPB        SSInquireAdapterPB;
  590.  
  591. struct SSInquireEDCPB {
  592.     UInt16                             adapter;                    /*    SS_ADAPTER*/
  593.     UInt16                             edc;                        /*    SS_EDC*/
  594.     UInt16                             sockets;                    /*    SS_SKTBITS*/
  595.     Byte                             caps;                        /*    SS_FLAGS8*/
  596.     Byte                             types;                        /*    SS_FLAGS8*/
  597. };
  598. typedef struct SSInquireEDCPB            SSInquireEDCPB;
  599.  
  600. struct SSInquireSocketPB {
  601.     UInt16                             adapter;                    /*    SS_ADAPTER*/
  602.     UInt16                             socket;                        /*    SS_SOCKET*/
  603.     Ptr                             buffer;                        /*    SS_PTR*/
  604.     Byte                             scIntCaps;                    /*    SS_FLAGS8*/
  605.     Byte                             scRptCaps;                    /*    SS_FLAGS8*/
  606.     Byte                             ctlIndCaps;                    /*    SS_FLAGS8*/
  607.     Byte                             padding[1];                    /*    */
  608. };
  609. typedef struct SSInquireSocketPB        SSInquireSocketPB;
  610.  
  611. struct SSInquireWindowPB {
  612.     UInt16                             adapter;                    /*    SS_ADAPTER*/
  613.     UInt16                             window;                        /*    SS_WINDOW*/
  614.     Ptr                             buffer;                        /*    SS_PTR*/
  615.     Byte                             wndCaps;                    /*    SS_FLAGS8*/
  616.     Byte                             reserved;                    /*    padding*/
  617.     UInt16                             sockets;                    /*    SS_SKTBITS*/
  618. };
  619. typedef struct SSInquireWindowPB        SSInquireWindowPB;
  620.  
  621. struct SSPauseEDCPB {
  622.     UInt16                             adapter;                    /*    SS_ADAPTER*/
  623.     UInt16                             edc;                        /*    SS_EDC*/
  624. };
  625. typedef struct SSPauseEDCPB                SSPauseEDCPB;
  626.  
  627. struct SSReadEDCPB {
  628.     UInt16                             adapter;                    /*    SS_ADAPTER*/
  629.     UInt16                             edc;                        /*    SS_EDC*/
  630.     UInt16                             value;                        /*    SS_WORD*/
  631. };
  632. typedef struct SSReadEDCPB                SSReadEDCPB;
  633.  
  634. struct SSResetSocketPB {
  635.     UInt16                             adapter;                    /*    SS_ADAPTER*/
  636.     UInt16                             socket;                        /*    SS_SOCKET*/
  637. };
  638. typedef struct SSResetSocketPB            SSResetSocketPB;
  639.  
  640. struct SSResumeEDCPB {
  641.     UInt16                             adapter;                    /*    SS_ADAPTER*/
  642.     UInt16                             edc;                        /*    SS_EDC*/
  643. };
  644. typedef struct SSResumeEDCPB            SSResumeEDCPB;
  645.  
  646. struct SSStartEDCPB {
  647.     UInt16                             adapter;                    /*    SS_ADAPTER*/
  648.     UInt16                             edc;                        /*    SS_EDC*/
  649. };
  650. typedef struct SSStartEDCPB                SSStartEDCPB;
  651.  
  652. struct SSStopEDCPB {
  653.     UInt16                             adapter;                    /*    SS_ADAPTER*/
  654.     UInt16                             edc;                        /*    SS_EDC*/
  655. };
  656. typedef struct SSStopEDCPB                SSStopEDCPB;
  657.  
  658. struct SSVendorSpecificPB {
  659.     UInt16                             vsFunction;                    /*    SS_WORD*/
  660.     UInt16                             adapter;                    /*    SS_ADAPTER*/
  661.     UInt16                             socket;                        /*    SS_SOCKET*/
  662.     UInt16                             bufferSize;                    /*    SS_WORD*/
  663.     Ptr                             buffer;                        /*    SS_PTR*/
  664.     UInt32                             attributes;                    /*    SS_LONG*/
  665. };
  666. typedef struct SSVendorSpecificPB        SSVendorSpecificPB;
  667. /*    'attributes' constants */
  668. enum {
  669.     kSSGoingToSleep                = 0x00000001,
  670.     kSSWakingFromSleep            = 0x00000002
  671. };
  672.  
  673. /*------------------------------------------------------------------------
  674.     Non-specific Socket Services Functions
  675. ------------------------------------------------------------------------*/
  676. EXTERN_API( SS_RETCODE )
  677. SSGetAdapterCount                (SSGetAdapterCountPB *    pb,
  678.                                  Ptr                     dataPtr);
  679.  
  680. /*------------------------------------------------------------------------
  681.     Adapter Functions
  682. ------------------------------------------------------------------------*/
  683. EXTERN_API( SS_RETCODE )
  684. SSAcknowledgeInterrupt            (SSAcknowledgeInterruptPB * pb,
  685.                                  Ptr                     dataPtr);
  686.  
  687. EXTERN_API( SS_RETCODE )
  688. SSGetSetPriorHandler            (SSGetSetPriorHandlerPB * pb,
  689.                                  Ptr                     dataPtr);
  690.  
  691. EXTERN_API( SS_RETCODE )
  692. SSGetSetSSAddr                    (SSGetSetSSAddrPB *        pb,
  693.                                  Ptr                     dataPtr);
  694.  
  695. EXTERN_API( SS_RETCODE )
  696. SSGetAccessOffsets                (SSGetAccessOffsetsPB *    pb,
  697.                                  Ptr                     dataPtr);
  698.  
  699. EXTERN_API( SS_RETCODE )
  700. SSGetAdapter                    (SSGetSetAdapterPB *    pb,
  701.                                  Ptr                     dataPtr);
  702.  
  703. EXTERN_API( SS_RETCODE )
  704. SSGetSSInfo                        (SSGetSSInfoPB *        pb,
  705.                                  Ptr                     dataPtr);
  706.  
  707. EXTERN_API( SS_RETCODE )
  708. SSGetVendorInfo                    (SSGetVendorInfoPB *    pb,
  709.                                  Ptr                     dataPtr);
  710.  
  711. EXTERN_API( SS_RETCODE )
  712. SSInquireAdapter                (SSInquireAdapterPB *    pb,
  713.                                  Ptr                     dataPtr);
  714.  
  715. EXTERN_API( SS_RETCODE )
  716. SSSetAdapter                    (SSGetSetAdapterPB *    pb,
  717.                                  Ptr                     dataPtr);
  718.  
  719. EXTERN_API( SS_RETCODE )
  720. SSVendorSpecific                (SSVendorSpecificPB *    pb,
  721.                                  Ptr                     dataPtr);
  722.  
  723. /*------------------------------------------------------------------------
  724.     Socket Functions
  725. ------------------------------------------------------------------------*/
  726. EXTERN_API( SS_RETCODE )
  727. SSGetSocket                        (SSGetSetSocketPB *        pb,
  728.                                  Ptr                     dataPtr);
  729.  
  730. EXTERN_API( SS_RETCODE )
  731. SSGetStatus                        (SSGetStatusPB *        pb,
  732.                                  Ptr                     dataPtr);
  733.  
  734. EXTERN_API( SS_RETCODE )
  735. SSInquireSocket                    (SSInquireSocketPB *    pb,
  736.                                  Ptr                     dataPtr);
  737.  
  738. EXTERN_API( SS_RETCODE )
  739. SSResetSocket                    (SSResetSocketPB *        pb,
  740.                                  Ptr                     dataPtr);
  741.  
  742. EXTERN_API( SS_RETCODE )
  743. SSSetSocket                        (SSGetSetSocketPB *        pb,
  744.                                  Ptr                     dataPtr);
  745.  
  746. /*------------------------------------------------------------------------
  747.     Window Functions
  748. ------------------------------------------------------------------------*/
  749. EXTERN_API( SS_RETCODE )
  750. SSGetPage                        (SSGetSetPagePB *        pb,
  751.                                  Ptr                     dataPtr);
  752.  
  753. EXTERN_API( SS_RETCODE )
  754. SSGetWindow                        (SSGetSetWindowPB *        pb,
  755.                                  Ptr                     dataPtr);
  756.  
  757. EXTERN_API( SS_RETCODE )
  758. SSInquireWindow                    (SSInquireWindowPB *    pb,
  759.                                  Ptr                     dataPtr);
  760.  
  761. EXTERN_API( SS_RETCODE )
  762. SSSetPage                        (SSGetSetPagePB *        pb,
  763.                                  Ptr                     dataPtr);
  764.  
  765. EXTERN_API( SS_RETCODE )
  766. SSSetWindow                        (SSGetSetWindowPB *        pb,
  767.                                  Ptr                     dataPtr);
  768.  
  769. /*------------------------------------------------------------------------
  770.     Error Detection Functions
  771. ------------------------------------------------------------------------*/
  772. EXTERN_API( SS_RETCODE )
  773. SSGetEDC                        (SSGetSetEDCPB *        pb,
  774.                                  Ptr                     dataPtr);
  775.  
  776. EXTERN_API( SS_RETCODE )
  777. SSInquireEDC                    (SSInquireEDCPB *        pb,
  778.                                  Ptr                     dataPtr);
  779.  
  780. EXTERN_API( SS_RETCODE )
  781. SSPauseEDC                        (SSPauseEDCPB *            pb,
  782.                                  Ptr                     dataPtr);
  783.  
  784. EXTERN_API( SS_RETCODE )
  785. SSReadEDC                        (SSReadEDCPB *            pb,
  786.                                  Ptr                     dataPtr);
  787.  
  788. EXTERN_API( SS_RETCODE )
  789. SSResumeEDC                        (SSResumeEDCPB *        pb,
  790.                                  Ptr                     dataPtr);
  791.  
  792. EXTERN_API( SS_RETCODE )
  793. SSSetEDC                        (SSGetSetEDCPB *        pb,
  794.                                  Ptr                     dataPtr);
  795.  
  796. EXTERN_API( SS_RETCODE )
  797. SSStartEDC                        (SSStartEDCPB *            pb,
  798.                                  Ptr                     dataPtr);
  799.  
  800. EXTERN_API( SS_RETCODE )
  801. SSStopEDC                        (SSStopEDCPB *            pb,
  802.                                  Ptr                     dataPtr);
  803.  
  804.  
  805.  
  806. #if PRAGMA_STRUCT_ALIGN
  807.     #pragma options align=reset
  808. #elif PRAGMA_STRUCT_PACKPUSH
  809.     #pragma pack(pop)
  810. #elif PRAGMA_STRUCT_PACK
  811.     #pragma pack()
  812. #endif
  813.  
  814. #ifdef PRAGMA_IMPORT_OFF
  815. #pragma import off
  816. #elif PRAGMA_IMPORT
  817. #pragma import reset
  818. #endif
  819.  
  820. #ifdef __cplusplus
  821. }
  822. #endif
  823.  
  824. #endif /* __SOCKETSERVICES__ */
  825.  
  826.